import Vue from 'vue'
import App from './App.vue'
import router from './router'
import axios from 'axios'

// 1.导入 element-ui
import ElementUI, { Loading } from 'element-ui'
// 2.导入 element-ui 的样式表
import 'element-ui/lib/theme-chalk/index.css'
// 3. 将ElementUI 安装为 vue 的插件
Vue.use(ElementUI)

Vue.filter('dateFormat', (dtStr) => {
  const dt = new Date(dtStr)

  const y = dt.getFullYear()
  const m = padZero(dt.getMonth() + 1)
  const d = padZero(dt.getDate())

  const hh = padZero(dt.getHours())
  const mm = padZero(dt.getMinutes())
  const ss = padZero(dt.getSeconds())

  return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
})

function padZero(n){
  return n > 9 ? n:'0' + n
}

Vue.config.productionTip = false

// 在全局配置 axios
// axios.defaults.baseURL="https://www.escook.cn"
axios.defaults.baseURL = "http://localhost:3000"

// loading实例
let loadingInstance=null

// 声明请求的拦截器
axios.interceptors.request.use(config=>{
  // 展示 Loading 效果
  loadingInstance=Loading.service({ fullscreen:true })
  return config
},err=>{
  Promise.reject(err)
})

// 声明响应的拦截器
axios.interceptors.response.use(response=>{
  // 隐藏 Loading 效果
  setTimeout(() => {
    loadingInstance.close()
  }, 100);
  return response
},err=>{
  return Promise.reject(err)
})

Vue.prototype.$http = axios

new Vue({
  // 挂载路由
  router: router,
  render: h => h(App),
}).$mount('#app')
